// var util = require('../..//utils/util.js'); //转换时间插件
// var webim = require('../../utils/webim.js');//腾讯云im包
// var webimhandler = require('../../utils/webim_handler.js');//这个是所有事件的腾讯js，这个页面需要用到登录

const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    isNoData: true,
    // noData: app.data.imageUrl + '/no-msg.png',//无数据的图片
    contactList: [],//会话列表
  },

  onLoad: function (options) {

  },
  onShow: function () {
    wx.showLoading()
    var that = this;
    var selToID = '';//会话列表不设置对方私聊账号
    webimhandler.init({ //初始化的方法
      accountMode: app.data.Config.accountMode
      , accountType: app.data.Config.accountType
      , sdkAppID: app.data.Config.sdkappid
      , selType: webim.SESSION_TYPE.C2C//私聊
      , agent_member_id: app.data.userInfo.id//经纪人id
      , id: selToID  //如果是经纪人，则填agent_member_id ,如果是普通用户则填经纪人id
      , name: app.data.userInfo.agent_name
      , icon: app.data.userInfo.agent_pic,
      that: that
    });
    if (webim.checkLogin()) {//检查是否登录返回true和false,不登录则重新登录
      console.log('已登录')
      that.initRecentContactList();
    } else {
      console.log('登录成功')
      webimhandler.sdkLogin(that, app, selToID, function () {
        that.initRecentContactList();
      });
    }

  },
  //初始化聊天界面最近会话列表
  initRecentContactList: function () {

    var that = this;
    webim.getRecentContactList({//获取会话列表的方法
      'Count': 10 //最近的会话数 ,最大为 100
    }, function (resp) {
      if (resp.SessionItem) {

        if (resp.SessionItem.length == 0) {
          that.setData({
            isNoData: false,
          })
          wx.hideLoading()
        } else if (resp.SessionItem.length > 0) {
          that.setData({
            contactList: resp.SessionItem,
            isNoData: true
          })
          var userId = that.data.contactList.map((item, index) => {
            return item.To_Account
          })
          that.getAvatar(userId, that.data.contactList, function (data) {

            data = data.map((item, index) => {
              if (item.MsgShow == '[其他]') {
                item.MsgShow = '[房源信息]'
              }
              return item;

            })
            that.setData({
              contactList: data
            })
            wx.hideLoading();
            // 初始化最近会话的消息未读数(监听新消息事件)
            webim.syncMsgs(webimhandler.onMsgNotify());

          })
          // webim.syncMsgs(that.initUnreadMsgCount())
        } else {
          wx.hideLoading()
          return;
        }
      } else {
        wx.hideLoading()
      }


    }, function (resp) {
      //错误回调
    });


  },
  // 初始化最近会话的消息未读数（这个方法用不到，多余，这是个坑，登录之后仍然返回空对象）
  initUnreadMsgCount: function () {
    var sess;
    var sessMap = JSON.stringify(webim.MsgStore.sessMap());

    for (var i in sessMap) {
      console.log('循环对象')
      sess = sessMap[i];
      // if (selToID && selToID != sess.id()) { //更新其他聊天对象的未读消息数
      console.log('sess.unread()', sess.unread())
      // updateSessDiv(sess.type(), sess.id(), sess.name(), sess.unread());
      // }
    }
  },
  //获取会话列表所有用户头像
  getAvatar: function (userId, item, callback) {
    if (!callback) {
      callback = () => {

      }
    }
    var that = this;
    var tag_list = ['Tag_Profile_IM_Nick', 'Tag_Profile_IM_Image']
    tag_list.push("Tag_Profile_IM_Nick");
    //用户id
    var account = userId
    var options = {
      From_Account: userId,
      To_Account: account,
      LastStandardSequence: 0,
      TagList: tag_list,
    };
    var contactList = [];

    webim.getProfilePortrait(
      options,
      function (res) {
        var UserProfileItem = res.UserProfileItem;
        var C2cNick, C2cImage;
        for (var i = 0; i < UserProfileItem.length; i++) {
          var data = UserProfileItem[i].ProfileItem;

          // 循环添加昵称和头像
          contactList = item.map((item, index) => {
            item.C2cNick = UserProfileItem[index].ProfileItem[0].Value

            item.C2cImage = UserProfileItem[index].ProfileItem[1].Value
            return item;
          })
        }
        contactList = contactList.map((item, index) => {
          var MsgTimeStamp = util.getDateDiff(item.MsgTimeStamp * 1000)
          item.MsgTimeStamp = MsgTimeStamp;
          return item;
        })
        callback(contactList)
      }
    )

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },
  /**
   * 从列表选择一个会话跳转聊天（需要传你要聊天的会话的对方id过去）
   */
  linkChat: function (e) {
    wx.navigateTo({
      url: '/pages/chat/chat?id=' + e.currentTarget.dataset.id + '&name=' + e.currentTarget.dataset.name,
    })
  }
})
